package com.wiken.storeservice.controller;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.wiken.servicecommon.common.Code;
import com.wiken.servicecommon.common.R;
import com.wiken.storeservice.VO.StoreCategoriesVO;
import com.wiken.storeservice.entity.Store;
import com.wiken.storeservice.entity.StoreCategories;
import com.wiken.storeservice.entity.StoreCategoriesCommodityVO;
import com.wiken.storeservice.service.impl.StoreCategoriesServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wiken
 * @since 2022-12-28
 */
@RestController
@RequestMapping("/storeservice/storecategories")
public class StoreCategoriesController {
    @Autowired
    StoreCategoriesServiceImpl storeCategoriesService;

    @PostMapping("addStoreCategories")
    public R addStoreCategories(@RequestBody StoreCategories storeCategories, @RequestHeader("Authorization") String token){
        boolean success = storeCategoriesService.addStoreCategories(storeCategories, token);

        if(!success) return R.error().code(Code.ERROR).message("添加店铺分类失败");

        return R.ok().code(Code.SUCCESS).message("添加店铺分类成功");
    }

    @PutMapping("updateStoreCategories")
    public R updateStoreCategories(@RequestBody StoreCategories storeCategories, @RequestHeader("Authorization") String token){
        boolean success = storeCategoriesService.updateStoreCategories(storeCategories, token);

        if(!success) return R.error().code(Code.ERROR).message("更新商品分类失败");

        return R.ok().code(Code.SUCCESS).message("更新商品分类成功");
    }

    @DeleteMapping("delStoreCategories")
    public R delStoreCategories(@RequestBody StoreCategories storeCategories, @RequestHeader("Authorization") String token){
        boolean success = storeCategoriesService.delStoreCategories(storeCategories, token);

        if(!success) return R.error().code(Code.ERROR).message("删除店铺分类失败");

        return R.ok().code(Code.SUCCESS).message("删除店铺分类成功");
    }

    @PostMapping("getStoreCategoriesList")
    public R getStoreCategoriesList(@RequestBody Store store){
        List<StoreCategories> storeCategoriesList = storeCategoriesService.getStoreCategoriesList(store);

        return R.ok().code(Code.SUCCESS).message("获取店铺分类成功").data("storeCategoriesList", storeCategoriesList);
    }

    @PostMapping("getStoreCategoriesCommodityList")
    public R getStoreCategoriesCommodityList(@RequestBody Store store){
        List<StoreCategoriesCommodityVO> storeCategoriesCommodityVOList = storeCategoriesService.getStoreCategoriesCommodityVOList(store);

        return R.ok().code(Code.SUCCESS).message("获取店铺分类成功").data("storeCategoriesList", storeCategoriesCommodityVOList);
    }

    @PostMapping("getStoreCategoriesListByUserId")
    public R getStoreCategoriesListByUserId(@RequestHeader("Authorization") String token){
        List<StoreCategoriesVO> storeCategoriesList = storeCategoriesService.getStoreCategoriesListByUserId(token);

        return R.ok().code(Code.SUCCESS).message("获取店铺分类成功").data("storeCategoriesList", storeCategoriesList);

    }

}
